package main

import (
	"log"

	"github.com/streadway/amqp"
)

func main() {
	// 连接到RabbitMQ服务器
	conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
	if err != nil {
		log.Fatal(err)
	}
	defer conn.Close()

	// 创建一个频道
	ch, err := conn.Channel()
	if err != nil {
		log.Fatal(err)
	}
	defer ch.Close()

	// 声明队列（单聊）
	q, err := ch.QueueDeclare(
		"chat", // 队列名称
		false,  // 是否持久化
		false,  // 是否自动删除
		false,  // 是否独占
		false,  // 是否等待消费者
		nil,    // 额外参数
	)
	if err != nil {
		log.Fatal(err)
	}

	// 接收队列中的消息
	msgs, err := ch.Consume(
		q.Name, // 队列名称
		"",     // 消费者名称
		true,   // 自动确认
		false,  // 独占
		false,  // 不阻塞
		false,  // 额外参数
		nil,
	)
	if err != nil {
		log.Fatal(err)
	}

	// 打印接收到的消息
	log.Println(" [*] Waiting for messages. To exit press CTRL+C")
	for msg := range msgs {
		log.Printf(" [x] Received %s", msg.Body)
	}
}
